package com.itcast.common.model.dto.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author Atom
 * @create 2024-07-18 14:38
 */
@Data
@ApiModel("总检单详情响应模型")
public class CheckupSummaryDetailResDTO {
    @ApiModelProperty("体检单id")
    private Long id;

    @ApiModelProperty("体检单状态，0：待报道，1：科室分检，2：待终检，3：已终检")
    private Integer status;

    @ApiModelProperty("预约日期")
    private LocalDate reservationDate;

    @ApiModelProperty("报道时间")
    private LocalDateTime arrivalTime;

    @ApiModelProperty("总检诊断")
    private String diagnosisSummary;

    @ApiModelProperty("总检建议")
    private String diagnosisSuggestion;

    @ApiModelProperty("体检人信息")
    private CheckUserInfo checkUserInfo;

    @ApiModelProperty("套餐信息")
    private SetmealInfo setmealInfo;

    @ApiModelProperty("体检组和体检项信息")
    List<CheckupResultGroupResDTO> checkupResultGroupList;

    @Data
    @ApiModel("总检单-体检人信息响应模型")
    public static class CheckUserInfo {
        @ApiModelProperty("体检人id")
        private Long id;

        @ApiModelProperty("体检人姓名")
        private String name;

        @ApiModelProperty("体检人照片")
        private String img;

        @ApiModelProperty("性别，1：男，2：女")
        private Integer sex;

        @ApiModelProperty("出生日期")
        private String birthday;

        @ApiModelProperty("婚姻状况，0：未婚，1：已婚")
        private Integer maritalStatus;

        @ApiModelProperty("证件类型，0：身份证，1：军人证，2：台胞证，3：港澳通信证，4：护照")
        private Integer certificateType;

        @ApiModelProperty("证件号码")
        private String idCardNo;

        @ApiModelProperty("手机号")
        private String phone;

        @ApiModelProperty("地址")
        private String address;
    }

    @Data
    @ApiModel("总检单-套餐信息响应模型")
    public static class SetmealInfo {

        @ApiModelProperty("套餐类型id")
        private Long setmealCategoryId;

        @ApiModelProperty("套餐类型名称")
        private String setmealCategoryName;

        @ApiModelProperty("套餐id")
        private Long setmealId;

        @ApiModelProperty("套餐名称")
        private String setmealName;
    }
}
